package com.huanf.controller;

import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.huanf.domain.ReadToMySQLVo;
import com.huanf.service.ReadToMySQLService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.FileInputStream;
import java.util.List;

/**
 * @author: 35238
 * 功能: easyPoi-将Excel的数据读取到数据库
 * 时间: 2023-12-26 22:55
 */
@RestController
@Slf4j
public class ReadToMySQLController {

    @Autowired
    private ReadToMySQLService readEasyToMySQLService;

    //要读取Excel在哪个位置
    String PATH = "E:\\桌面\\Java-Ready\\conf\\Excel\\easyPoiToMySQL.xlsx";

    @GetMapping("/toMysql") //浏览器访问 http://localhost:8081/toMysql
    public void toMysql() throws Exception {

        //1.读取Excel
        ImportParams params = new ImportParams();
        params.setTitleRows(1);//可选。默认是1，设置标题行占一行(以实际情况为准，表格那边是几行，就写几行，不然读取会出问题)，标题行就是第一行，例如'用户信息列表'
        params.setHeadRows(1);//可选。默认是1设置头部行占一行(以实际情况为准，表格那边是几行，就写几行，不然读取会出问题)，头部行就是第二行，例如'编号'、'姓名'、'生日'、'年龄'
        params.setStartSheetIndex(0);//可选。默认是0，表示读取第一个sheet。注意默认是只读一个sheet，除非你设置setSheetNum配置信息，如下一行
        List<ReadToMySQLVo> simpleReadVo = ExcelImportUtil.importExcel(new FileInputStream(PATH), ReadToMySQLVo.class, params);
        //2.插入数据库
        readEasyToMySQLService.saveBatch(simpleReadVo);

    }

}
